<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style type="text/css">
      .child2 {
        transform: translateY(200px);
      }
    </style>
  </head>

  <body>
    <div>
      <div class="child1">1</div>
      <div class="child2">2</div>
      <div class="child3">3</div>
    </div>
    <script type="text/javascript">
      let arr = [11, [1, 2, 3], [3, 4, 5, 5], [1, 2, [3, 4, [5]]], 10];
      // 方法一
      // arr=arr.flat(Infinity);
      // console.log(arr);
      // let arr1=new Set(arr);// 去重
      // arr1=[...arr1];
      // console.log(arr1);

      // 方法二
      // arr=arr.toString().split(',').map(item=>{
      //     return Number(item);
      // });
      // console.log(arr);

      // 方法三
      // arr=JSON.stringify(arr);
      // console.log(arr);
      // arr=arr.replace(/\[|\]/g,'');
      // console.log(arr);

      // 方法四
      // find 和some的区别 some 返回的boolen find 找到符合规则的，返回当前这一项，没找到符合规则的，返回undefined
      // // Array.isArray([]) // true 检查某个值是否为数组类型
      // while(arr.some(item=>Array.isArray(item))){
      //     arr=[].(...arr);
      // }
      // console.log(arr);

      //自己递归执行
      // function myFlay() {
      //     var result = [], _this = this;
      //     var fn = function (arr) {
      //         for (var i = 0; i < arr.length; i++) {
      //             var item = arr[i];
      //             if (Array.isArray(item)) {
      //                 fn(item);
      //                 continue;
      //             } else {
      //                 result.push(item);
      //             }
      //         }
      //     }
      //     fn(_this);
      //     return result;
      // };
      //   Array.prototype.myFlay = myFlay;
      //   arr = arr.myFlay();
      function myFlat(arr) {
        var result = [];
        for (var i = 0; i < arr.length; i++) {
          if (Array.isArray(arr[i])) {
            result.push(...myFlat(arr[i]));
          } else {
            result.push(arr[i]);
          }
        }
        return result;
      }
      // console.log(myFlat(arr));
    </script>
  </body>
</html>
